package javabase;

/**
 * Created by mHandler on 2018/5/8 0008.
 * Description:整型缓存 jdk1.5以上
 */
public class IntegerCache {


    public static void main(String[] args) {
        Integer a = 3;
        Integer b = 3;
        if (a == b)
            System.out.println(" a== b");
        else
            System.out.println(" a!= b");

        Integer c = 300;
        Integer d = 400;
        if (c == d)
            System.out.println(" c== d");
        else
            System.out.println("c != d");

        String s = "3";
        Integer integer1 = 3;
        Integer integer = Integer.valueOf(s);
        if (integer1 == integer)
            System.out.println("integer1 == integer");
        else
            System.out.println("integer1 != integer");

        Integer aa = new Integer(3);
        Integer bb = new Integer(3);
        if (aa == bb)
            System.out.println("aa == bb");
        else
            System.out.println("aa != bb");
    }

    /**tips 第一个输出结果为  a==b  第二个输出结果为  c==b 第三个输出结果为  integer1 == integer 第四个输出结果为 aa != bb
     * 这里的声明是使用自动装箱的形式  Integer a=3  --->  Integer a=Integer.valueOf(3);
     * 之所以会出现这个结果是自jdk1.5以后引入了整型缓存机制  其值的范围是-128至127
     * 当要创建对象是会去缓存里赵是否等值对象，有则不创建，无则创建
     * 不适用于使用构造函数创建对象  Integer a= new Integer(3)
     *
     * */

}
